In a typical configuration wherein functions commonly used among a plurality of applications are provided as a shared library that is dynamically linked to the applications during application execution, if a function in the shared library is corrected, for example, each application that uses the function is also modified. This improves the maintainability of the applications. For example, in Windows (registered trademark), a dynamic link library with an extension of “dll” is a shared library.
If functions used in common by the plurality of applications are provided as a shared library, however, applications from, for example, a competing company can also use the functions. Accordingly, it is necessary to prevent unauthorized use of the shared library.
In the typical system to prevent unauthorized use of a shared library, if there is no specific software development tool at a stage at which an executable program file in which an object in a library is embedded is developed, control is performed so that protect codes that are appropriately associated cannot be embedded in the library and executable program file. Furthermore, in the above system, upon execution of the object, a protect code check function is executed and, if the protect code in the library and the protect code in the executable program file are not appropriately associated, control is performed so that execution of the program is terminated.
In a typical information processing apparatus, an object in a library is retrieved for each application to generate an executable program file. Therefore, the library in the typical information processing apparatus is not an ordinary shared library; when an object in the library is corrected, the corrected object needs to be embedded in each application. Another problem with the typical information processing apparatus is that the configuration to protect the shared library is complex.